package com.yt.al.service;

import io.appium.java_client.AppiumDriver;

import org.openqa.selenium.WebElement;

import com.yt.al.config.ZSYYTDriver;
import com.yt.al.object.ZSYYTObject;
import com.yt.al.util.TestUtil;
import com.yt.al.util.WriteLogUtil;

public class ZSYYTService extends BaseService {

	AppiumDriver driver = null;
	public AppiumDriver getDriver() {
		return driver;
	}

	public void setDriver(AppiumDriver driver) {
		this.driver = driver;
	}


	ZSYYTObject zsyytObj = null;

	public ZSYYTService(String url, String udid) {
		driver = ZSYYTDriver.returnDriver(url, udid);
		zsyytObj = new ZSYYTObject(driver);
		init(driver);
	}

	/**
	 * 开始
	 */
	public Integer firstLogin(String phone, String pwd) {
		int rel = 1;
		try {
			TestUtil.waits(1000);

			// 横向滑动3次
			horzlignFlickTimes(3);

			
			TestUtil.waits(2000);

			WriteLogUtil.writeMsgToFile("点击立即体验元素");
			clickDeal(zsyytObj.getComeIn());
			//
			TestUtil.waits(2000);
			WriteLogUtil.writeMsgToFile("点击 我的 按钮");
			clickDeal(zsyytObj.getMe());
			//
			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile("点击 立即登录 按钮， 进入登录页面");
			clickDeal(zsyytObj.clickLogin());
			//
			TestUtil.waits(1000);
			WriteLogUtil.writeMsgToFile("点击 记住密码 按钮");
			clickDeal(zsyytObj.rememberPass());

			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile("输入 手机号码 ");
			writeDeal(zsyytObj.userName(), phone);

			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile("输入 密码 ");
			writeDeal(zsyytObj.userPass(), pwd);

			TestUtil.waits(2000);
			WriteLogUtil.writeMsgToFile(" 点击 登录按钮 ");
			clickDeal(zsyytObj.loginBtn());
			checkLoginLoading();

			WriteLogUtil.writeMsgToFile("获取 登录按钮元素，判断是否登录成功 ");
			WebElement loginBtn = zsyytObj.loginBtn();
			if (loginBtn != null) {
				WriteLogUtil.writeMsgToFile(" 重新点击登录按钮 ");
				clickDeal(zsyytObj.loginBtn());
				checkLoginLoading();
				
				WriteLogUtil.writeMsgToFile("获取 登录按钮元素，判断是否登录成功 ");
				loginBtn = zsyytObj.loginBtn();
				if(loginBtn!=null)
				{
					WriteLogUtil.writeMsgToFile(" 登录失败");
					rel = 2;
					return rel;
				}
			}
			
//			
//			TestUtil.waits(5000);
//			WriteLogUtil.writeMsgToFile(" 点击 个人设置 按钮 ");
//			clickDeal(zsyytObj.settingBtn());
//
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 退出登录 按钮 ");
//			clickDeal(zsyytObj.loginoutBtn());
//
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 确认退出 按钮 ");
//			clickDeal(zsyytObj.loginoutSureBtn());
//
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 返回登录 按钮 ");
//			clickDeal(zsyytObj.goLoginBtn());
		} catch (Exception e) {
			rel = 0;
		}

		return rel;
	}
	
	private void checkLoginLoading()
	{
		try {
			while(zsyytObj.loginLoadingBtn()!=null)
			{
				WriteLogUtil.writeMsgToFile("正在网络请求，等待1秒钟");
				
				Thread.sleep(1000);
			}
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
	
	public int firstAgainLogin(String phone, String pwd)
	{
		int rel = 1;
		try
		{
			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile("输入 手机号码 ");
			writeDeal(zsyytObj.userName(), phone);

			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile("输入 密码 ");
			writeDeal(zsyytObj.userPass(), pwd);
			
			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile(" 点击 登录按钮 ");
			clickDeal(zsyytObj.loginBtn());
			checkLoginLoading();
			
			WriteLogUtil.writeMsgToFile("获取 登录按钮元素，判断是否登录成功 ");
			WebElement loginBtn = zsyytObj.loginBtn();
			if (loginBtn != null) {
				WriteLogUtil.writeMsgToFile(" 重新点击登录按钮 ");
				clickDeal(zsyytObj.loginBtn());
				checkLoginLoading();
				
				WriteLogUtil.writeMsgToFile("获取 登录按钮元素，判断是否登录成功 ");
				loginBtn = zsyytObj.loginBtn();
				if(loginBtn!=null)
				{
					WriteLogUtil.writeMsgToFile(" 登录失败");
					rel = 2;
					return rel;
				}
			}
			
//			WebElement settingBtn = zsyytObj.settingBtn();
//			if (settingBtn == null) {
//				WriteLogUtil.writeMsgToFile(" 重新点击登录按钮 ");
//				clickDeal(zsyytObj.loginBtn());
//			}
//			
//			TestUtil.waits(5000);
//			settingBtn = zsyytObj.settingBtn();
//			if (settingBtn == null) {
//				WriteLogUtil.writeMsgToFile(" 登录失败");
//				rel = 2;
//				return rel;
//			}
//			TestUtil.waits(5000);
//			WriteLogUtil.writeMsgToFile(" 点击 个人设置 按钮 ");
//			clickDeal(zsyytObj.settingBtn());
//
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 退出登录 按钮 ");
//			clickDeal(zsyytObj.loginoutBtn());
//
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 确认退出 按钮 ");
//			clickDeal(zsyytObj.loginoutSureBtn());
//
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 返回登录 按钮 ");
//			clickDeal(zsyytObj.goLoginBtn());
		}
		catch(Exception e)
		{
			rel = 0;
		}
		
		return rel;
	}
	
	public int secondAgainLogin(String phone, String pwd)
	{
		int rel = 1;
		try
		{
			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile("输入 手机号码 ");
			writeDeal(zsyytObj.userName(), phone);

			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile("输入 密码 ");
			writeDeal(zsyytObj.userPass(), pwd);
			
			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile(" 点击 登录按钮 ");
			clickDeal(zsyytObj.loginBtn());
			checkLoginLoading();
			
			WriteLogUtil.writeMsgToFile("获取 登录按钮元素，判断是否登录成功 ");
			WebElement loginBtn = zsyytObj.loginBtn();
			if (loginBtn != null) {
				WriteLogUtil.writeMsgToFile(" 重新点击登录按钮 ");
				clickDeal(zsyytObj.loginBtn());
				checkLoginLoading();
				
				WriteLogUtil.writeMsgToFile("获取 登录按钮元素，判断是否登录成功 ");
				loginBtn = zsyytObj.loginBtn();
				if(loginBtn!=null)
				{
					WriteLogUtil.writeMsgToFile(" 登录失败");
					rel = 2;
					return rel;
				}
			}
			
//			TestUtil.waits(5000);
//			WebElement loginoutBtn = zsyytObj.loginoutBtn();
//			if (loginoutBtn == null) {
//				WriteLogUtil.writeMsgToFile(" 重新点击登录按钮 ");
//				clickDeal(zsyytObj.loginBtn());
//			}
//			
//			TestUtil.waits(5000);
//			loginoutBtn = zsyytObj.loginoutBtn();
//			if (loginoutBtn == null) {
//				WriteLogUtil.writeMsgToFile(" 登录失败");
//				rel = 2;
//				return rel;
//			}
//			
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 退出登录 按钮 ");
//			clickDeal(zsyytObj.loginoutBtn());
//
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 确认退出 按钮 ");
//			clickDeal(zsyytObj.loginoutSureBtn());
//
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 返回登录 按钮 ");
//			clickDeal(zsyytObj.goLoginBtn());
		}
		catch(Exception e)
		{
			rel = 0;
		}
		
		return rel;
	}
	

	public int secondLogin(String phone, String pwd) {
		int rel = 1;
		try
		{
			WriteLogUtil.writeMsgToFile(" 是否存在 个人设置 按钮 ");
			WebElement settingBtn = zsyytObj.settingBtn();
			if(settingBtn!=null)
			{
				WriteLogUtil.writeMsgToFile(" 点击 个人设置 按钮 ");
				clickDeal(settingBtn);
			}

			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile(" 点击 退出登录 按钮 ");
			clickDeal(zsyytObj.loginoutBtn());

			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile(" 点击 确认退出 按钮 ");
			clickDeal(zsyytObj.loginoutSureBtn());

			TestUtil.waits(2000);
			WriteLogUtil.writeMsgToFile(" 点击 返回登录 按钮 ");
			clickDeal(zsyytObj.goLoginBtn());
			
			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile("点击 记住密码 按钮");
			clickDeal(zsyytObj.rememberPass());

			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile("输入 手机号码 ");
			writeDeal(zsyytObj.userName(), phone);

			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile("输入 密码 ");
			writeDeal(zsyytObj.userPass(), pwd);
			
			TestUtil.waits(500);
			WriteLogUtil.writeMsgToFile(" 点击 登录按钮 ");
			clickDeal(zsyytObj.loginBtn());
			checkLoginLoading();
			
			WriteLogUtil.writeMsgToFile("获取 登录按钮元素，判断是否登录成功 ");
			WebElement loginBtn = zsyytObj.loginBtn();
			if (loginBtn != null) {
				WriteLogUtil.writeMsgToFile(" 重新点击登录按钮 ");
				clickDeal(zsyytObj.loginBtn());
				checkLoginLoading();
				
				WriteLogUtil.writeMsgToFile("获取 登录按钮元素，判断是否登录成功 ");
				loginBtn = zsyytObj.loginBtn();
				if(loginBtn!=null)
				{
					WriteLogUtil.writeMsgToFile(" 登录失败");
					rel = 2;
					return rel;
				}
			}

//			TestUtil.waits(5000);
//			WebElement loginoutBtn = zsyytObj.loginoutBtn();
//			if (loginoutBtn == null) {
//				WriteLogUtil.writeMsgToFile(" 重新点击登录按钮 ");
//				clickDeal(zsyytObj.loginBtn());
//			}
//			
//			TestUtil.waits(5000);
//			loginoutBtn = zsyytObj.loginoutBtn();
//			if (loginoutBtn == null) {
//				WriteLogUtil.writeMsgToFile(" 登录失败");
//				rel = 2;
//				return rel;
//			}
//			TestUtil.waits(5000);
//			
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 退出登录 按钮 ");
//			clickDeal(zsyytObj.loginoutBtn());
//
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 确认退出 按钮 ");
//			clickDeal(zsyytObj.loginoutSureBtn());
//
//			TestUtil.waits(2000);
//			WriteLogUtil.writeMsgToFile(" 点击 返回登录 按钮 ");
//			clickDeal(zsyytObj.goLoginBtn());
		}
		catch(Exception e)
		{
			rel = 0;
		}
		return rel;
		
	}

}
